In the forward direction of a Code Division, Multiple Access (CDMA) system, i.e., from a base station or base unit to a subscriber unit, it is relatively easy to synchronize the pseudonoise (PN) codes of the various channels, since they are all created at and transmitted from the same base station. It is furthermore very easy to time-align the chips and symbols of the constituent signals within the aggregate waveform. As a result, the forward channel of most CDMA systems utilizes some form of synchronous CDMA. In some systems, such as a fixed wireless local loop telephone system known as Primewave 2000.TM. available from the assignee of this patent application, the reverse channel (i.e., subscriber unit to base station) is also quasi-synchronous. In this type of system, a timing control loop is utilized to maintain the various users in the system time-aligned such that their respective signals all arrive at the base station within a small fraction of a chip of each other.
Whenever synchronous or quasi-synchronous CDMA is employed, it becomes possible to use PN codes which are designed to have the smallest possible cross-correlation when time-aligned with each other. If the number of users in the system is less than the number of chips transmitted for each channel symbol (which may be referred to as the channel symbol processing gain), then it is possible to design PN codes that are truly orthogonal to each other. When the number of users exceeds the channel symbol processing gain, then it is no longer possible to design codes that are orthogonal, since the dimensionality of the signaling space has been exceeded. For this reason, it is possible for synchronous and quasi-synchronous CDMA systems to support a number of users equal to the channel symbol processing gain, as long as the links have adequately large power and adequately low interference resulting from distortions such as clipping, multipath, filtering and timing offsets.
It is often desirable for the system to support users which are not all at the same signaling rate. For example, in a system where some users are using a telephone and the required date rate is on the order of a few thousand bits per second (Kbps) to a few tens of Kbps, while other users are using the system as a computer network interface and require a million bits per second (Mbps) or more, the waveform should to be able to simultaneously accommodate the various non-homogeneous users.
It is possible to support a high rate user by allocating to him or her a plurality of parallel, lower rate channels, but this approach requires that the high rate users have a plurality of transmitters and receivers. As such, this approach is less than desirable in many systems where cost is an important consideration.
A more cost-effective technique to support high rate and low rate users simultaneously is to employ a common chipping rate for all users, but to permit the users in the system to vary their channel symbol processing gains depending on their respective data rate. This implies that if one desires that all users in either the forward, or the forward and reverse channels, to be orthogonal to each other, independent of their rates, then a set of PN codes are needed of various lengths, and that are mutually orthogonal when synchronized appropriately.
Walsh functions are a set of binary and orthogonal waveforms that can be used for signal multiplexing purposes, and have long been recognized as having application to telephony. Reference in this regard can be had to an article entitled "The Multiplexing of Telephone Signals by Walsh Functions", by I. A. Davidson in Applications of Walsh Functions, 1971 proceedings, Second Edition, Eds. R. W. Zeek and A. E. Showalter, pages 177-179.
Of the number of possible sets of orthogonal functions that can be used as carriers in multiplex transmission, the category of the completely orthogonal Hadamard functions have also been long recognized as being particularly well suited for technical applications, including telephony applications. In general, Walsh functions are special Hadamard functions, and can be described by Hadamard matrices with powers of 2 as ordinary numbers. Further function systems can be derived from Hadamard matrices by permutation of columns and rows and by sign inversion, while preserving their orthogonal characteristics.
One method for creating PN codes which are mutually orthogonal is to use a recursive construction technique defined by H. Hubner, "Multiplex Systems Using Sums of Walsh Functions as Carriers", also in Applications of Walsh Functions, 1971 proceedings, Second Edition, pages 180-191.
Reference in this regard can also be had to U.S. Pat. No. 5,571,761, entitled "System and Method for Orthogonal Spread Spectrum Sequence Generation in Variable Data Rate Systems", by Klein S. Gilhousen.
These approaches are based upon the Walsh-Hadamard construction technique defined as follows: ##EQU1## where w(n) is an n x n matrix of .+-.1 values. If one defines w(1)=1, then it follows that, ##EQU2## and also that, ##EQU3##
This construction technique is recursive since it obeys the equation EQU f(m)=g(f(n)), m&gt;n (4)
for some functions f,g and indexes m,n, where m&gt;n. In other words, the m.sup.th function, f, is created solely from an operation, g, on a previous version of f, namely f(n). A function is considered to be recursive if it obeys equation (4). By letting f=w, m=2n, one can see that g is defined by equation (1).
This construction technique permits multi-rate orthogonal signaling on a synchronous CDMA system, since the Walsh sequences of length n can support users at a channel symbol rate of Rs.sub.1 =Rc/n (where Rc is the chip rate), while the Walsh sequences of length 2n can support lower rate users of rate Rs.sub.2 =Rc/2n. In order to illustrate this point, let w.sub.ij (n) be the j.sup.th .+-.1 valued chip in the i.sup.th row of the code matrix. If only one subscript is used, w.sub.1 (n), let that represent the i.sup.th row of the code matrix, or in other words, the i.sup.th PN code in the set having n chips in the vector. Clearly both i and j are integers ranging from 1 to n. When these codes are used for multi-rate CDMA operation, the users at the various rates are either perfectly correlated or are orthogonal, as is illustrated by FIG. 1a.
In FIG. 1a it can be seen that there is a choice of supporting n users at rate Rc/n, 2n users at rate Rc/2n, or a number of users between n and 2n at mixed rates. If, for example, a user employs code w.sub.1 (n) at rate Rc/n, then codes w.sub.1 (2n) and w.sub.2 (2n) at rate Rc/2n may not be used, since they are not orthogonal with the user employing code w.sub.1 (n) at rate Rc/n. Other users may employ codes w.sub.3 (2n) and W.sub.4 (2n) at rate Rc/2n since they are all mutually orthogonal, even though they are at different data rates.
However, there are several problems with the approach described in U.S. Pat. No. 5,751,761. First of all, if the Walsh codes are used directly then the spectral properties of the PN codes would be very poor. This is due to the fact that the codes are made up of very regular patterns as is illustrated by equation (3). Some codes are completely unspread, while others are spread with square waves whose frequencies are one, two, four, eight, etc. times the symbol rate. These users would have very limited immunity to jammers, and would not enjoy the benefits of being spread with a PN code of processing gain n or 2n (depending on their rate).
In U.S. Pat. No. 5,751,761, the approach used to avoid this problem is to apply a cover code to the code matrix. This amounts to multiplying every code in the set by a single randomizing vector of .+-.1 valued chips whose length is much larger than the channel symbol processing gain. So long as every code in the set is multiplied by the same cover code, the orthogonality of the set is retained, but the resulting set is made to appear more random.
However, a problem that arises when applying a cover code to the matrix is that the resulting randomized Walsh codes are not balanced. This means that, over any symbol period, the number of +1 valued chips and -1 valued chips are not equal to one another in most of the resulting PN codes. Balance in the code set is a very desirable property, since it implies that the codes are orthogonal to any DC offset in the receiver of the signal. In other words, if the chips are .+-.1 millivolts in the receiver, but there is a 2 millivolt DC offset in the signal at the input of the despreader, then the despreader would have to multiply the .+-.1 despreading code with an input signal having values of +3 and +1 millivolts. However, if the PN code is balanced over a symbol, then the DC offset will not affect the despreading process.
In general, and referring briefly to FIG. 1b , the approach used in U.S. Pat. No. 5,751,761 is a recursive approach, wherein the value of the nth output of y is created from a previous value of y, so long as n&gt;0. In other words, past relationships are used to create new, current relationships between code elements.
As has been made apparent, the use of such a recursive technique to create PN code sets for use in multirate CDMA system can result in problems.